<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<script>
    //  delete 操作符
    // 移除成功返回 true 失败返回false (通常var和let声明的变量会失败,注意delete undefined返回false)

    // 一般是用于对象中删除某个属性。使用后，先把属性和此对象解除绑定，然后在内存中释放

    // 可以删除数据元素，但数组的长度不会改变 ，被删除位置是empty空位 （该位置没有任何值）
    const obj = {
        name: 'jack',
        age: 20,
        school: 'qingHua',
        email: '123@qq.com'
    }
    delete obj.school
    console.log(obj) //{name: 'jack', age: 20, email: '123@qq.com'}

    let arr = [1, 2, 3, 4, 5]
    delete arr[2]
    console.log(arr, arr.length, arr[2]) //[1, 2, empty, 4, 5]   5   undefined

    arr.forEach((item) => {
        console.log(item) // 1 2 4 5  会自动跳过空位
    })
</script>
</body>

</html>
